Spoken language interfaces are most commonly encountered in telephony interfaces. These interfaces are executed on computing systems which are dedicated to a single application such as gathering user data for order taking In order to accomplish this, the user is prompted to utter the required data Limited command decoding is occasionally provided in the form of questions which can be answered with a “yes” or a “no” or a string of numbers. Such an interface is provided for a single application and has no requirement for dynamic change in the content of the commands or prompts since the dedicated task of the application is unchanging. Further, spoken language services are obtained to build the interface by linking an API or application programmers interface.
An interface which engages in a dialog with the user, be it free form or carefully structured and directed, may be created entirely within an executing application or it may be created for the application by a “dialog manager.” In general, it is desirable that such a dialog manager support the initiative of either the user or the application. It is, thus, like a communications pipe between the user and the application. Such a dialog manager is described in the above-referenced and concurrently filed U.S. patent application identified by Ser. No. 09/460,077, in the name of L. Cormerford et al., and entitled: “Personal Speech Assistant Supporting a Dialog Manager.” It is important to distinguish dialog management, as in the above-referenced patent application, from provision of application programmer interfaces for the “engines” (such as a spoken command decoding engine) providing language related services. APIs, such as Microsoft's Speech Application Programmer's Interface and the JAVA consortium JSAPI interfaces, only provide an abstraction of the “engines” inter in order to allow application programs to operate regardless of the identity of the provider of the particular engines installed on a given user's system. This provides a common low-level interface for accessing the services of engines, but leaves the creation and management of dialog to the individual applications accessing these low level interfaces. It is a pipe between the application and the engine services, not between the user and the application.
Also, given the fact that applications and engines can be dynamic in nature, the conventional APIs provide insufficient means, or no even no means, for updating themselves based on changes in an application or engine. Thus, a need exists for spoken language interface methods and apparatus which address these shortcomings in the existing art.